home *** CD-ROM | disk | FTP | other *** search
/ TeX 1995 July / TeX CD-ROM July 1995 (Disc 1)(Walnut Creek)(1995).ISO / macros / tip / namedef.tip < prev    next >
Text File  |  1993-09-15  |  2KB  |  65 lines

  1. % This macro source file is from the four volume series
  2. % "TeX in Practice" by Stephan von Bechtolsheim, published
  3. % 1993 by Springer-Verlag, New York.
  4. % Copyright 1993 Stephan von Bechtolsheim.
  5. % No warranty or liability is assumed.
  6. % This macro may be copied freely if no fees other than
  7. % media cost or shipping charges are charged and as long
  8. % as this copyright and the following source code itself
  9. % is not changed. Please see the series for further information.
  10. %
  11. % Version: 1.0
  12. % Date: May 1, 1993
  13. %
  14. %
  15. % This source code is documented in 19.1.8, p. III-73.
  16. % Original source in file "tokens2.TEX", starting line 414.
  17. \wlog{L: "namedef.tip" ["tokens2.TEX," l. 414, p. III-73]}%
  18. % This file DOES belong to format "texip."
  19. \catcode`\@ = 11
  20. \def\NameDef #1{% 
  21.     \expandafter\def\csname #1\endcsname
  22. }
  23. \def\NameEdef #1{%
  24.     \expandafter\edef\csname #1\endcsname
  25. }
  26. \def\NameGdef #1{% 
  27.     \expandafter\gdef\csname #1\endcsname
  28. }
  29. \def\NameXdef #1{% 
  30.     \expandafter\xdef\csname #1\endcsname
  31. }
  32. \def\NameNewDef #1{% 
  33.     \if\NameDefinedConditional{#1}% 
  34.         \errmessage{\string\NameNewDef: "#1" already defined.}% 
  35.     \fi
  36.     \NameDef{#1}% 
  37. }
  38. \def\NameReDef #1{% 
  39.     \if\NameDefinedConditional{#1}%
  40.     \else
  41.         \errmessage{\string\NameReDef: "#1" never defined before.}% 
  42.     \fi
  43.     \NameDef{#1}% 
  44. }
  45. \def\NameUse #1{\csname #1\endcsname}
  46. \def\NameUseFlagUndefined #1{% 
  47.     \if\NameDefinedConditional{#1}%
  48.         \NameUse{#1}%
  49.     \else
  50.         \errmessage{\string\NameUseFlagUndefined: token "#1"
  51.             is undefined.}%
  52.     \fi
  53. }
  54. \newif\if@NameDefined
  55. \def\NameDefinedConditional #1{% 
  56.     TT\fi
  57.     \expandafter\ifx\csname #1\endcsname \relax
  58.         \@NameDefinedfalse
  59.     \else
  60.         \@NameDefinedtrue
  61.     \fi
  62.     \if@NameDefined
  63. }
  64. \catcode`\@ = 12
  65.